#ifndef SCENE_1
#define SCENE_1

#include <windows.h>  // Header File For Windows
#include <gl\gl.h>	  // Header File For The OpenGL32 Library
#include <gl\glu.h>	  // Header File For The GLu32 Library
#include <list>
#include "Scene.h"
#include "vecmat.h"
#include "Triangle.h"

class Scene1 : public Scene
{
private:
    GLuint    wallTexture;
    GLuint   floorTexture;
    GLuint ceilingTexture;

    void InitializeTextures();
    void BuildRoom();
	void BuildCastle();
	void BuildCastleEntrance(
		vec<float,4> topLeftPoint,
		vec<float,4> topLeftColor,
		float        topLeftS, 
		float		 topLeftF,
		vec<float,4> bottomRightPoint,
		vec<float,4> bottomRightColor,
		float        bottomRightS, 
		float        bottomRightF,
		float        wallWidth,
		float        cubeLength,
		float        entranceWidth,
		float        entranceHeight);
	void BuildCourtyard();
	void BuildRightCastleWall(
		vec<float,4> topLeftPoint,
		vec<float,4> topLeftColor,
		float        topLeftS, 
		float		 topLeftF,
		vec<float,4> bottomRightPoint,
		vec<float,4> bottomRightColor,
		float        bottomRightS, 
		float        bottomRightF,
		float        wallWidth,
		float        cubeHeight);
	void BuildFrontCastleWall(
		vec<float,4> topLeftPoint,
		vec<float,4> topLeftColor,
		float        topLeftS, 
		float		 topLeftF,
		vec<float,4> bottomRightPoint,
		vec<float,4> bottomRightColor,
		float        bottomRightS, 
		float        bottomRightF,
		float        wallWidth,
		float        cubeHeight);

public:
    virtual void Build();
};
#endif